<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    /*
    6，字符串操作：
        1.txt，从字符串“Java技术学习班20150115"提取开班日期，并打印(格式为：2015年01月15日)
        2，将”hello java”字符串中的”java”替换为”j2ee”。
        3，取出“Java技术学习班20150115”中的第8个字符，并打印，charAt(7)
        4，清除“Java技术学习班20150115”中的所有0。charAt()或replaceAll()
        5，清除“Java技术学习班20150115 老师 leo”中的所有空格  replaceAll()
        6，从任意给定的身份证号码中提取此人的出生日期。
     */
    let str = "Java技术学习班20150115";
    let slice = str.slice(-8);
    console.log(slice);
    console.log(slice.substr(0, 4) + "年" + slice.substr(4, 2) + "月" + slice.substr(6, 2) + "日");
    console.log("hello java java".replace("java", "j2ee"));
    console.log("hello java java".replaceAll("java", "j2ee"));

    /*
    写一个函数，验证身份证是否正确
    身份证第十八位数字(校验码)的计算方法为：
        1.txt.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为：[7, 9, 10, 5, 8, 4, 2, 1.txt, 6, 3, 7, 9, 10, 5, 8, 4, 2];
        2.将这17位数字和系数相乘的结果相加。
        3.用加出来和除以11，看余数是多少？
        4.余数只可能有0 1.txt 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为["1.txt", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];。
        5.通过上面得知如果余数是2，就会在身份证的第18位数字上出现罗马数字的Ⅹ（x无视大小写）。如果余数是10，身份证的最后一位号码就是2。
        例如：440102198001021230，你自己身份证号码
    */
    function isIDCard(id) {
        let xishu = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
        let sum = 0;
        for (let i = 0; i < xishu.length; i++) {
            sum += parseInt(id.charAt(i)) * xishu[i];
        }
        let yushu = sum % 11;
        let haoma = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
        // console.log(id.length);
        // console.log(id.charAt(17));
        // console.log(haoma[yushu]);
        if (id.charAt(17) == haoma[yushu]) {
            console.log(`${id}是一个合法的身份证`);
        } else {
            console.log(`${id}不是一个合法的身份证`);
        }
    }
    isIDCard("440102198001021230");
    isIDCard("440102198001021231");
</script>
</body>
</html>